% Ejercicio "Tablas en HTML"
\subsection*{\fbox{\theejercicio} - Tablas en HTML}

El leguaje de paginas web HTML permite definir tablas mediante la combinaci\'on de etiquetas \verb@<TABLE>...</TABLE>@. Cada tabla se compone de una o mas filas, que se definen mediante el par de etiquetas \verb@<TR>...</TR>@ y cada fila de una o mas columnas, que se definen mediante las etiquetas \verb@<TD>...</TD>@. Las filas pueden tener distinto n\'umero de columnas o celdas. Dentro de cada celda puede incluirse cualquier texto en HTML, incluyendo otras tablas.

\smallskip

Construir una aplicaci\'on mediante LEX y YACC que sea capaz de leer ficheros HTML y transformar las tablas de manera que invierta la posici\'on de filas y columnas, tal como muestra el siguiente ejemplo:

\begin{center}
\begin{tabular}{|l|l|} \hline
Origen                                & Resultado                                       \\ \hline
\verb@<HTML>@                         & \verb@<HTML>@                                   \\
\verb@<BODY>@                         & \verb@<BODY>@                                   \\
{\small Esta tabla tiene 3 filas con} & {\small Esta tabla tiene 3 filas con}           \\
{\small 2, 3 y 4 columnas cada una}   & {\small 2, 3 y 4 columnas cada una}             \\
\verb@<TABLE>@                        & \verb@<TABLE>@                                  \\
\verb@  <TR>@                         & \verb@  <TR>@                                   \\
\verb@    <TD>Uno</TD>@               & \verb@    <TD>Doce</TD>@                        \\
\verb@    <TD>Dos</TD>@               & \verb@    <TD>Once</TD>@                        \\
\verb@  </TR>@                        & \verb@    <TD>Diez</TD>@                        \\
\verb@  <TR>@                         & \verb@    <TD>@                                 \\
\verb@    <TD>Tres</TD>@              & \verb@      <TABLE>@                            \\
\verb@    <TD>Cuatro</TD>@            & \verb@        <TR>@                             \\
\verb@    <TD>Cinco</TD>@             & \verb@          <TD>Nueve</TD>@                 \\
\verb@  </TR>@                        & \verb@          <TD>Ocho</TD>@                  \\
\verb@  <TR>@                         & \verb@        </TR>@                            \\
\verb@    <TD>@                       & \verb@        <TR>@                             \\
\verb@      <TABLE>@                  & \verb@          <TD>Siete</TD>@                 \\
\verb@        <TR>@                   & \verb@          <TD>Seis</TD>@                  \\
\verb@          <TD>Seis</TD>@        & \verb@        </TR>@                            \\
\verb@          <TD>Siete</TD>@       & \verb@      </TABLE>@                           \\
\verb@        </TR>@                  & \verb@    </TD>@                                \\
\verb@        <TR>@                   & \verb@  </TR>@                                  \\
\verb@          <TD>Ocho</TD>@        & \verb@  <TR>@                                   \\
\verb@          <TD>Nueve</TD>@       & \verb@    <TD>Cinco</TD>@                       \\
\verb@        </TR>@                  & \verb@    <TD>Cuatro</TD>@                      \\
\verb@      </TABLE>@                 & \verb@    <TD>Tres</TD>@                        \\
\verb@    </TD>@                      & \verb@  </TR>@                                  \\
\verb@    <TD>Diez</TD>@              & \verb@  <TR>@                                   \\
\verb@    <TD>Once</TD>@              & \verb@    <TD>Dos</TD>@                         \\
\verb@    <TD>Doce</TD>@              & \verb@    <TD>Uno</TD>@                         \\
\verb@  </TR>@                        & \verb@  </TR>@                                  \\
\verb@</TABLE>@                       & \verb@</TABLE>@                                 \\
\verb@</BODY>@                        & \verb@</BODY>@                                  \\
\verb@</HTML>@                        & \verb@</HTML>@                                  \\ \hline
\includegraphics[0cm,0cm][5.93cm,2.75cm]{./capitulo4/ejercicios/figuras/tabla_HTML1.jpg} &
\includegraphics[0cm,0cm][5.82cm,2.65cm]{./capitulo4/ejercicios/figuras/tabla_HTML2.jpg} \\ \hline
\end{tabular}
\end{center}

NOTAS:

\begin{itemize}
\item En el caso de que una celda contenga otra tabla, esta tambi\'en debe transformarse.
\item Para la realizaci\'on de este ejercicio no debe usarse ninguna variable global
\item Los espacios en blanco no son relevantes en HTML, y por tanto no es necesario que el resultado aparezca correctamente identado
\item En realidad, las etiquetas del lenguaje HTML, incluyendo las etiquetas \verb@<TABLE>@ \verb@<TR>@ y \verb@<TD>@ pueden ser m\'as complejas, e incluir argumentos, pero a fin de simplificar el problema puede suponerse que no los tienen y que se escriben siempre con letras may\'usculas.
\end{itemize}

% Solución del ejercicio
\subsubsection*{SOLUCI\'ON}

